#ifndef __HEADER_H
#define __HEADER_H

#define SERVER_PORT 8080
#define BUFFER_SIZE 1024

// 常用头文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// 网络编程涉及的头文件
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>

#include <sys/types.h>

// 本机字节序和网络字节序转换相关函数的头文件
#include <arpa/inet.h>

// 关闭套接字用close函数需要的头文件
#include <unistd.h>

// 线程相关的函数头, mutex相关的函数
#include <pthread.h>

// if_nametoindex
#include <net/if.h>

// IO复用技术select函数，集合操作相关的函数（FD_ZERO, ...）
#include <sys/select.h>
// 时间相关的头文件
#include <sys/time.h>

//数据库相关头文件
#include <mysql/mysql.h>

// 类型重命名：地址结构体的规范
typedef struct sockaddr SockAddr;

// 地址结构体的规范的实现结构体
typedef struct sockaddr_in SockAddrIn;

// struct ip_mreqn
// {
//     struct in_addr imr_multiaddr; /* IP multicast group address */
//     struct in_addr imr_address;   /* IP address of local interface */
//     int imr_ifindex;              /* interface index */
// };

#endif